import { defineConfig } from 'vite'
import { resolve } from 'path'
import vue from '@vitejs/plugin-vue'
// 标记-- 引入name 插件
import vueSetupExtend from 'vite-plugin-vue-setup-extend'
// 标记--自动引入的配置
import AutoImport from 'unplugin-auto-import/vite'

// https://vitejs.dev/config/
export default defineConfig({
  plugins: [
    vue(),
    vueSetupExtend(),
    AutoImport({
      // 自动引入的第三方模块
      imports: ['vue', 'vue-router', 'pinia', '@vueuse/core'],
      // 本地请求的模块
      dirs: ['@/stores'],
      dts: './src/autoImport.d.ts'
    })
  ],
  resolve: {
    alias: {
      '@': resolve(__dirname, 'src')
    },
    extensions: ['.ts', '.vue', '.js', '.jsx', '.tsx'] // 导入时想要省略的扩展名列表。
  },
  server: {
    host: '0.0.0.0', // 会映射多个域名地址
    port: 8000, // 默认起始端口号
    open: true, // 自动打开浏览器访问
    hmr: false, //自动刷新
    //标记-- 配置跨域代理,修改  .env.development  中的文件
    proxy: {
      '/api': {
        target: 'http://127.0.0.1:3006',
        changeOrigin: true, // 允许跨域
        rewrite: (path) => path.replace(/^\/api/, '')
      }
    }
  },
  css: {
    preprocessorOptions: {
      scss: {
        //标记-- 引入 var.scss 这样就可以在全局中使用 var.scss中预定义的变量了
        // 给导入的路径最后加上 ;
        additionalData: '@import "./src/styles/variables.scss";'
      }
    },
    postcss: {
      plugins: [
        {
          postcssPlugin: 'internal:charset-removal',
          AtRule: {
            charset: (atRule) => {
              if (atRule.name === 'charset') {
                atRule.remove()
              }
            }
          }
        }
      ]
    }
  }
})
